input() 是 Python 提供的函式,可以讓使用者在程式執行時輸入資料,並將這些資料儲存在變數中。
name = input("Enter your name:")
print("Hello," + name + "!")
執行時會顯示提示文字並等使用者輸入內容,按下 Enter 後,輸入的資料就會存入變數 name。
重要觀念: input() 的輸入永遠都是字串
不管使用者輸入的是數字、字,還是符號,input() 回傳的都是字串類型(str)!
如果想把它當數字來用,必須自己轉換資料型別。
原型別 | 轉換方法 | 範例 |
---|---|---|
字串 → 整數 | int(字串) |
int("100") → 100 |
字串 → 小數 | float(字串) |
float("3.14") → 3.14 |
整數 → 字串 | str(整數) |
str(100) → "100" |
age = int(input("Enter your age:"))
if age > 18:
print("Adult!")
錯誤範例
意思是:你不能用 > 來比較「字串」和「整數」。
name = input("Enter your name:")
height = float(input("Enter your height(cm):"))
weight = float(input("Enter your weight(kg):"))
bmi = weight / ((height / 100) ** 2)
print(f"{name} 's BMI is {bmi:.2f}")
說明:
float() 將字串轉換為小數
:.2f 表示小數點顯示 2 位
今天我學會了使用 input(),讓程式不再只是印東西,而是能夠「跟我對話」。
當我學到 input() 回傳的都是字串類型,要得到除了字串的型別就必須轉換型別。讓我回頭看了一下Java的寫法。
在寫Java的時候,輸入整數要寫:
Scanner sc = new Scanner(System.in);
int age = sc.nextInt();
Java 會依照 .nextInt() 回傳對應的型別,但你得先指定「我要的是 int」。而 Python 則是一律用 input() 接收為字串,開發者必須自己轉換型別。這讓我體會到兩種語言在設計上的差異:
Java 強調型別明確、結構完整;而 Python 則比較自由、靈活,但要靠自己控制資料的型別正確性。不過當我理解可以用 int()、float() 去轉型後,整體就變得非常有邏輯,也更能掌握變數的型別。
我覺得最有趣的是我可以自己寫一個BMI 計算器,讓我感覺到寫程式真的可以做出有用的東西!
明天我會學習數值與字串的基本操作方式,以及 print 的格式化輸出技巧,讓我的程式在互動上更清楚、漂亮!